\hypertarget{class_grid_based_placer}{}\doxysection{Grid\+Based\+Placer Class Reference}
\label{class_grid_based_placer}\index{GridBasedPlacer@{GridBasedPlacer}}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{class_grid_based_placer_a44663116c923a78d2c437e4eb7589d89}\label{class_grid_based_placer_a44663116c923a78d2c437e4eb7589d89}} 
{\bfseries Grid\+Based\+Placer} (\mbox{\hyperlink{classkicad_pcb_data_base}{kicad\+Pcb\+Data\+Base}} \&db)
\item 
\mbox{\Hypertarget{class_grid_based_placer_a0e139d990c86db885204c73e801686a7}\label{class_grid_based_placer_a0e139d990c86db885204c73e801686a7}} 
void {\bfseries test\+\_\+hplacer\+\_\+flow} ()
\item 
\mbox{\Hypertarget{class_grid_based_placer_ab3d8210943757d48f7c0d266e7ad426b}\label{class_grid_based_placer_ab3d8210943757d48f7c0d266e7ad426b}} 
\mbox{\hyperlink{classkicad_pcb_data_base}{kicad\+Pcb\+Data\+Base}} \& {\bfseries test\+\_\+placer\+\_\+flow} ()
\item 
\mbox{\Hypertarget{class_grid_based_placer_a4f63dd90c0b946320ece6ed3eb8546bc}\label{class_grid_based_placer_a4f63dd90c0b946320ece6ed3eb8546bc}} 
\mbox{\hyperlink{classkicad_pcb_data_base}{kicad\+Pcb\+Data\+Base}} \& {\bfseries get\+Db} ()
\item 
\mbox{\Hypertarget{class_grid_based_placer_a57ce6cfd7a82e164635417517f78dbed}\label{class_grid_based_placer_a57ce6cfd7a82e164635417517f78dbed}} 
double {\bfseries get\+\_\+total\+\_\+cost} ()
\item 
\mbox{\Hypertarget{class_grid_based_placer_a3ac43d78057e1b08d5a8c07f95f0cb24}\label{class_grid_based_placer_a3ac43d78057e1b08d5a8c07f95f0cb24}} 
double {\bfseries get\+\_\+wirelength\+\_\+cost} ()
\item 
\mbox{\Hypertarget{class_grid_based_placer_a356bda557d61cc1044eb4a9bedaf9f55}\label{class_grid_based_placer_a356bda557d61cc1044eb4a9bedaf9f55}} 
double {\bfseries get\+\_\+overlap\+\_\+cost} ()
\item 
\mbox{\Hypertarget{class_grid_based_placer_a4337191fd299c11af33e3edd1342b182}\label{class_grid_based_placer_a4337191fd299c11af33e3edd1342b182}} 
double {\bfseries get\+\_\+temperature} ()
\item 
\mbox{\Hypertarget{class_grid_based_placer_ae8f664750ebd45f17f3f3824d64aa1f7}\label{class_grid_based_placer_ae8f664750ebd45f17f3f3824d64aa1f7}} 
void {\bfseries set\+\_\+overlap\+\_\+weight} (double \+\_\+cst)
\item 
\mbox{\Hypertarget{class_grid_based_placer_a7f7fc615af1408904a9095e2fa0c13fc}\label{class_grid_based_placer_a7f7fc615af1408904a9095e2fa0c13fc}} 
void {\bfseries set\+\_\+wirelength\+\_\+weight} (double \+\_\+cst)
\item 
\mbox{\Hypertarget{class_grid_based_placer_aff68c0cb5ac6241fb010d25310a8fa8d}\label{class_grid_based_placer_aff68c0cb5ac6241fb010d25310a8fa8d}} 
void {\bfseries set\+\_\+two\+\_\+sided} (bool \+\_\+2sided)
\item 
\mbox{\Hypertarget{class_grid_based_placer_aa707b06f6895144328ba90ef40479686}\label{class_grid_based_placer_aa707b06f6895144328ba90ef40479686}} 
void {\bfseries set\+\_\+initial\+\_\+move\+\_\+radius} (double \+\_\+eps)
\item 
\mbox{\Hypertarget{class_grid_based_placer_a301bc7f012f37734cdd7816fe621083b}\label{class_grid_based_placer_a301bc7f012f37734cdd7816fe621083b}} 
void {\bfseries set\+\_\+rtree} (bool \+\_\+rt)
\item 
\mbox{\Hypertarget{class_grid_based_placer_ab01ce404434796db0764f64aa8c067e0}\label{class_grid_based_placer_ab01ce404434796db0764f64aa8c067e0}} 
void {\bfseries set\+\_\+lam} (bool \+\_\+lam)
\item 
\mbox{\Hypertarget{class_grid_based_placer_a65f6d20fb5e8ec24f4684cd6c95cd0e9}\label{class_grid_based_placer_a65f6d20fb5e8ec24f4684cd6c95cd0e9}} 
void {\bfseries set\+\_\+lamtemp\+\_\+update} (double \+\_\+coef)
\item 
\mbox{\Hypertarget{class_grid_based_placer_af2b1dbe1a650964e8246e2c29374556a}\label{class_grid_based_placer_af2b1dbe1a650964e8246e2c29374556a}} 
void {\bfseries set\+\_\+num\+\_\+iterations} (int iter)
\item 
\mbox{\Hypertarget{class_grid_based_placer_a4b8547649f28d55274e7d681424569e4}\label{class_grid_based_placer_a4b8547649f28d55274e7d681424569e4}} 
void {\bfseries set\+\_\+iterations\+\_\+moves} (int iter)
\item 
\mbox{\Hypertarget{class_grid_based_placer_a6594b4c62e8a1ead573306e1abc80580}\label{class_grid_based_placer_a6594b4c62e8a1ead573306e1abc80580}} 
void {\bfseries set\+\_\+initial\+\_\+temperature} (double tmp)
\item 
double \mbox{\hyperlink{class_grid_based_placer_ac41b70d10cb504c141af491e6d008fea}{h\+\_\+cell\+Density}} ()
\item 
\mbox{\Hypertarget{class_grid_based_placer_a21239fa283709511c49fc4dad44bd4eb}\label{class_grid_based_placer_a21239fa283709511c49fc4dad44bd4eb}} 
void {\bfseries h\+\_\+initialize\+\_\+params} (map$<$ int, vector$<$ \mbox{\hyperlink{class_module}{Module}} $\ast$ $>$ $>$ \&net\+To\+Cell)
\item 
void \mbox{\hyperlink{class_grid_based_placer_ae7c5717ebc9a8b3335ed1261e16bff59}{h\+\_\+validate\+\_\+move}} (\mbox{\hyperlink{class_module}{Module}} $\ast$node, double rx, double ry)
\item 
\mbox{\Hypertarget{class_grid_based_placer_a31f4a49e6827b180e5fc21e833ccd0f3}\label{class_grid_based_placer_a31f4a49e6827b180e5fc21e833ccd0f3}} 
double {\bfseries h\+\_\+cost} (map$<$ int, vector$<$ \mbox{\hyperlink{class_module}{Module}} $\ast$ $>$ $>$ \&net\+To\+Cell, int temp\+\_\+debug=0)
\item 
\mbox{\Hypertarget{class_grid_based_placer_a81db947f82c5c2e8605f3f0315018cc6}\label{class_grid_based_placer_a81db947f82c5c2e8605f3f0315018cc6}} 
double {\bfseries h\+\_\+cost\+\_\+partial} (vector$<$ \mbox{\hyperlink{class_module}{Module}} $\ast$ $>$ \&nodes, map$<$ int, vector$<$ \mbox{\hyperlink{class_module}{Module}} $\ast$ $>$ $>$ \&net\+To\+Cell)
\item 
double \mbox{\hyperlink{class_grid_based_placer_aa5d2bd9727ba3c264e49c6e9967186db}{h\+\_\+cell\+\_\+overlap}} ()
\item 
double \mbox{\hyperlink{class_grid_based_placer_afca1f17ef4b6a070b7c35fcc0d60b4d6}{h\+\_\+wirelength}} (map$<$ int, vector$<$ \mbox{\hyperlink{class_module}{Module}} $\ast$ $>$ $>$ \&net\+To\+Cell)
\item 
double \mbox{\hyperlink{class_grid_based_placer_a47a20daab21c665fba6e8989be8b626d}{h\+\_\+cell\+\_\+overlap\+\_\+partial}} (vector$<$ \mbox{\hyperlink{class_module}{Module}} $\ast$ $>$ \&nodes)
\item 
double \mbox{\hyperlink{class_grid_based_placer_a65ce19bb1688c364d9ccbd289b866c13}{h\+\_\+wirelength\+\_\+partial}} (vector$<$ \mbox{\hyperlink{class_module}{Module}} $\ast$ $>$ \&nodes, map$<$ int, vector$<$ \mbox{\hyperlink{class_module}{Module}} $\ast$ $>$ $>$ \&net\+To\+Cell)
\item 
double \mbox{\hyperlink{class_grid_based_placer_a4990e973111e94cabfc1b943838ccef3}{h\+\_\+rudy}} (map$<$ int, vector$<$ \mbox{\hyperlink{class_module}{Module}} $\ast$ $>$ $>$ \&net\+To\+Cell)
\item 
float \mbox{\hyperlink{class_grid_based_placer_a103c5cdd728660330372236797dc81bb}{h\+\_\+annealer}} (map$<$ int, vector$<$ \mbox{\hyperlink{class_module}{Module}} $\ast$ $>$ $>$ \&net\+To\+Cell, string initial\+\_\+pl, int level=0)
\item 
\mbox{\Hypertarget{class_grid_based_placer_a414e6f1966f9aabee8b370fd5cbcd88b}\label{class_grid_based_placer_a414e6f1966f9aabee8b370fd5cbcd88b}} 
double {\bfseries h\+\_\+initialize\+\_\+temperature} (double \&Temperature, map$<$ int, vector$<$ \mbox{\hyperlink{class_module}{Module}} $\ast$ $>$ $>$ \&net\+To\+Cell)
\item 
\mbox{\Hypertarget{class_grid_based_placer_a9ccf428c3ab674d08b8b6cae177bbe05}\label{class_grid_based_placer_a9ccf428c3ab674d08b8b6cae177bbe05}} 
double {\bfseries h\+\_\+initiate\+\_\+move} (double current\+\_\+cost, map$<$ int, vector$<$ \mbox{\hyperlink{class_module}{Module}} $\ast$ $>$ $>$ \&net\+To\+Cell)
\item 
void \mbox{\hyperlink{class_grid_based_placer_a8b8ce61fb5d0eb92ab18aa2c55baa718}{h\+\_\+random\+\_\+placement}} (int xmin, int xmax, int ymin, int ymax, \mbox{\hyperlink{class_module}{Module}} \&n)
\item 
void \mbox{\hyperlink{class_grid_based_placer_a2708609c6132b6397a28f3b2d7cdc95f}{h\+\_\+random\+\_\+initial\+\_\+placement}} ()
\item 
bool \mbox{\hyperlink{class_grid_based_placer_a7b55563a2d68a93c97b711ad58018485}{h\+\_\+check\+\_\+move}} (double prev\+Cost, double new\+Cost, double \&Temperature)
\item 
vector$<$ \mbox{\hyperlink{class_module}{Module}} $\ast$ $>$\+::iterator \mbox{\hyperlink{class_grid_based_placer_a5afd689f63a3d696e8404229a3b82d9b}{h\+\_\+random\+\_\+node}} ()
\end{DoxyCompactItemize}
\doxysubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{class_grid_based_placer_ad27c688099f63960509af621f97ef827}\label{class_grid_based_placer_ad27c688099f63960509af621f97ef827}} 
\mbox{\hyperlink{classkicad_pcb_data_base}{kicad\+Pcb\+Data\+Base}} \& {\bfseries m\+Db}
\end{DoxyCompactItemize}


\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{class_grid_based_placer_a103c5cdd728660330372236797dc81bb}\label{class_grid_based_placer_a103c5cdd728660330372236797dc81bb}} 
\index{GridBasedPlacer@{GridBasedPlacer}!h\_annealer@{h\_annealer}}
\index{h\_annealer@{h\_annealer}!GridBasedPlacer@{GridBasedPlacer}}
\doxysubsubsection{\texorpdfstring{h\_annealer()}{h\_annealer()}}
{\footnotesize\ttfamily float Grid\+Based\+Placer\+::h\+\_\+annealer (\begin{DoxyParamCaption}\item[{map$<$ int, vector$<$ \mbox{\hyperlink{class_module}{Module}} $\ast$ $>$ $>$ \&}]{net\+To\+Cell,  }\item[{string}]{initial\+\_\+pl,  }\item[{int}]{level = {\ttfamily 0} }\end{DoxyParamCaption})}

h\+\_\+annealer fmain loop for sa algorithm

annealer main loop for sa algorithm \mbox{\Hypertarget{class_grid_based_placer_aa5d2bd9727ba3c264e49c6e9967186db}\label{class_grid_based_placer_aa5d2bd9727ba3c264e49c6e9967186db}} 
\index{GridBasedPlacer@{GridBasedPlacer}!h\_cell\_overlap@{h\_cell\_overlap}}
\index{h\_cell\_overlap@{h\_cell\_overlap}!GridBasedPlacer@{GridBasedPlacer}}
\doxysubsubsection{\texorpdfstring{h\_cell\_overlap()}{h\_cell\_overlap()}}
{\footnotesize\ttfamily double Grid\+Based\+Placer\+::h\+\_\+cell\+\_\+overlap (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

h\+\_\+cell\+\_\+overlap Compute sum squared overlap for all components

cell\+\_\+overlap Compute sum squared overlap for all components \mbox{\Hypertarget{class_grid_based_placer_a47a20daab21c665fba6e8989be8b626d}\label{class_grid_based_placer_a47a20daab21c665fba6e8989be8b626d}} 
\index{GridBasedPlacer@{GridBasedPlacer}!h\_cell\_overlap\_partial@{h\_cell\_overlap\_partial}}
\index{h\_cell\_overlap\_partial@{h\_cell\_overlap\_partial}!GridBasedPlacer@{GridBasedPlacer}}
\doxysubsubsection{\texorpdfstring{h\_cell\_overlap\_partial()}{h\_cell\_overlap\_partial()}}
{\footnotesize\ttfamily double Grid\+Based\+Placer\+::h\+\_\+cell\+\_\+overlap\+\_\+partial (\begin{DoxyParamCaption}\item[{vector$<$ \mbox{\hyperlink{class_module}{Module}} $\ast$ $>$ \&}]{nodes }\end{DoxyParamCaption})}

h\+\_\+cell\+\_\+overlap\+\_\+partial Compute sum squared overlap for select components

cell\+\_\+overlap\+\_\+partial Compute sum squared overlap for select components \mbox{\Hypertarget{class_grid_based_placer_ac41b70d10cb504c141af491e6d008fea}\label{class_grid_based_placer_ac41b70d10cb504c141af491e6d008fea}} 
\index{GridBasedPlacer@{GridBasedPlacer}!h\_cellDensity@{h\_cellDensity}}
\index{h\_cellDensity@{h\_cellDensity}!GridBasedPlacer@{GridBasedPlacer}}
\doxysubsubsection{\texorpdfstring{h\_cellDensity()}{h\_cellDensity()}}
{\footnotesize\ttfamily double Grid\+Based\+Placer\+::h\+\_\+cell\+Density (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

h\+\_\+rudy Computes a routability score

rudy Computes a routability score \mbox{\Hypertarget{class_grid_based_placer_a7b55563a2d68a93c97b711ad58018485}\label{class_grid_based_placer_a7b55563a2d68a93c97b711ad58018485}} 
\index{GridBasedPlacer@{GridBasedPlacer}!h\_check\_move@{h\_check\_move}}
\index{h\_check\_move@{h\_check\_move}!GridBasedPlacer@{GridBasedPlacer}}
\doxysubsubsection{\texorpdfstring{h\_check\_move()}{h\_check\_move()}}
{\footnotesize\ttfamily bool Grid\+Based\+Placer\+::h\+\_\+check\+\_\+move (\begin{DoxyParamCaption}\item[{double}]{prev\+Cost,  }\item[{double}]{new\+Cost,  }\item[{double \&}]{Temperature }\end{DoxyParamCaption})}

h\+\_\+check\+\_\+move either accept or reject the move based on current \& previous temperature \& cost

check\+\_\+move either accept or reject the move based on current \& previous temperature \& cost \mbox{\Hypertarget{class_grid_based_placer_a2708609c6132b6397a28f3b2d7cdc95f}\label{class_grid_based_placer_a2708609c6132b6397a28f3b2d7cdc95f}} 
\index{GridBasedPlacer@{GridBasedPlacer}!h\_random\_initial\_placement@{h\_random\_initial\_placement}}
\index{h\_random\_initial\_placement@{h\_random\_initial\_placement}!GridBasedPlacer@{GridBasedPlacer}}
\doxysubsubsection{\texorpdfstring{h\_random\_initial\_placement()}{h\_random\_initial\_placement()}}
{\footnotesize\ttfamily void Grid\+Based\+Placer\+::h\+\_\+random\+\_\+initial\+\_\+placement (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

h\+\_\+initial\+\_\+placement Randomly place and orient all movable components in the board area

initial\+\_\+placement Randomly place and orient all movable components in the board area \mbox{\Hypertarget{class_grid_based_placer_a5afd689f63a3d696e8404229a3b82d9b}\label{class_grid_based_placer_a5afd689f63a3d696e8404229a3b82d9b}} 
\index{GridBasedPlacer@{GridBasedPlacer}!h\_random\_node@{h\_random\_node}}
\index{h\_random\_node@{h\_random\_node}!GridBasedPlacer@{GridBasedPlacer}}
\doxysubsubsection{\texorpdfstring{h\_random\_node()}{h\_random\_node()}}
{\footnotesize\ttfamily vector$<$ \mbox{\hyperlink{class_module}{Module}} $\ast$ $>$\+::iterator Grid\+Based\+Placer\+::h\+\_\+random\+\_\+node (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

h\+\_\+random\+\_\+node Select random node from set of nodes

random\+\_\+node Select random node from set of nodes \mbox{\Hypertarget{class_grid_based_placer_a8b8ce61fb5d0eb92ab18aa2c55baa718}\label{class_grid_based_placer_a8b8ce61fb5d0eb92ab18aa2c55baa718}} 
\index{GridBasedPlacer@{GridBasedPlacer}!h\_random\_placement@{h\_random\_placement}}
\index{h\_random\_placement@{h\_random\_placement}!GridBasedPlacer@{GridBasedPlacer}}
\doxysubsubsection{\texorpdfstring{h\_random\_placement()}{h\_random\_placement()}}
{\footnotesize\ttfamily void Grid\+Based\+Placer\+::h\+\_\+random\+\_\+placement (\begin{DoxyParamCaption}\item[{int}]{xmin,  }\item[{int}]{xmax,  }\item[{int}]{ymin,  }\item[{int}]{ymax,  }\item[{\mbox{\hyperlink{class_module}{Module}} \&}]{n }\end{DoxyParamCaption})}

hannealer main loop for hierarchical sa algorithm h\+\_\+random\+\_\+placement Randomly place and orient a single component within a bounded region

random\+\_\+placement Randomly place and orient a single component within a bounded region \mbox{\Hypertarget{class_grid_based_placer_a4990e973111e94cabfc1b943838ccef3}\label{class_grid_based_placer_a4990e973111e94cabfc1b943838ccef3}} 
\index{GridBasedPlacer@{GridBasedPlacer}!h\_rudy@{h\_rudy}}
\index{h\_rudy@{h\_rudy}!GridBasedPlacer@{GridBasedPlacer}}
\doxysubsubsection{\texorpdfstring{h\_rudy()}{h\_rudy()}}
{\footnotesize\ttfamily double Grid\+Based\+Placer\+::h\+\_\+rudy (\begin{DoxyParamCaption}\item[{map$<$ int, vector$<$ \mbox{\hyperlink{class_module}{Module}} $\ast$ $>$ $>$ \&}]{net\+To\+Cell }\end{DoxyParamCaption})}

h\+\_\+rudy Computes a routability score

rudy Computes a routability score \mbox{\Hypertarget{class_grid_based_placer_ae7c5717ebc9a8b3335ed1261e16bff59}\label{class_grid_based_placer_ae7c5717ebc9a8b3335ed1261e16bff59}} 
\index{GridBasedPlacer@{GridBasedPlacer}!h\_validate\_move@{h\_validate\_move}}
\index{h\_validate\_move@{h\_validate\_move}!GridBasedPlacer@{GridBasedPlacer}}
\doxysubsubsection{\texorpdfstring{h\_validate\_move()}{h\_validate\_move()}}
{\footnotesize\ttfamily void Grid\+Based\+Placer\+::h\+\_\+validate\+\_\+move (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_module}{Module}} $\ast$}]{node,  }\item[{double}]{rx,  }\item[{double}]{ry }\end{DoxyParamCaption})}

h\+\_\+validate\+\_\+move validates a shift, project within board boundary

validate\+\_\+move validates a shift, project within board boundary \mbox{\Hypertarget{class_grid_based_placer_afca1f17ef4b6a070b7c35fcc0d60b4d6}\label{class_grid_based_placer_afca1f17ef4b6a070b7c35fcc0d60b4d6}} 
\index{GridBasedPlacer@{GridBasedPlacer}!h\_wirelength@{h\_wirelength}}
\index{h\_wirelength@{h\_wirelength}!GridBasedPlacer@{GridBasedPlacer}}
\doxysubsubsection{\texorpdfstring{h\_wirelength()}{h\_wirelength()}}
{\footnotesize\ttfamily double Grid\+Based\+Placer\+::h\+\_\+wirelength (\begin{DoxyParamCaption}\item[{map$<$ int, vector$<$ \mbox{\hyperlink{class_module}{Module}} $\ast$ $>$ $>$ \&}]{net\+To\+Cell }\end{DoxyParamCaption})}

h\+\_\+wirelength Computes H\+P\+WL for all nets

wirelength Computes H\+P\+WL for all nets \mbox{\Hypertarget{class_grid_based_placer_a65ce19bb1688c364d9ccbd289b866c13}\label{class_grid_based_placer_a65ce19bb1688c364d9ccbd289b866c13}} 
\index{GridBasedPlacer@{GridBasedPlacer}!h\_wirelength\_partial@{h\_wirelength\_partial}}
\index{h\_wirelength\_partial@{h\_wirelength\_partial}!GridBasedPlacer@{GridBasedPlacer}}
\doxysubsubsection{\texorpdfstring{h\_wirelength\_partial()}{h\_wirelength\_partial()}}
{\footnotesize\ttfamily double Grid\+Based\+Placer\+::h\+\_\+wirelength\+\_\+partial (\begin{DoxyParamCaption}\item[{vector$<$ \mbox{\hyperlink{class_module}{Module}} $\ast$ $>$ \&}]{nodes,  }\item[{map$<$ int, vector$<$ \mbox{\hyperlink{class_module}{Module}} $\ast$ $>$ $>$ \&}]{net\+To\+Cell }\end{DoxyParamCaption})}

h\+\_\+wire\+Length\+\_\+partial Compute H\+P\+WL for select nets

wire\+Length\+\_\+partial Compute H\+P\+WL for select nets 

The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
src/Grid\+Based\+Placer.\+hpp\item 
src/Grid\+Based\+Placer.\+cpp\item 
src/H\+Placer\+Utils.\+cpp\end{DoxyCompactItemize}
